<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.prime.com.tr/ui">
    <ui:composition template="Index.xhtml">  
        <ui:define name="content"> 
            <h:body>
                <p:growl id="avisos" showDetail="true"/>
                <h:form id="formEditar">
                    <p:panel header="Cadastro de Funcionarios" id="panelDados">
                        <h:panelGrid columns="1" >
                            <h:outputText value="Código"/>
                            <p:inputText value="#{funcionarioHandler.funcionario.funCodigo}" disabled="true" size="5"/>
                            <h:outputText value="Nome "/>
                            <p:inputText value="#{funcionarioHandler.funcionario.funNome}" size="40" maxlength="45" required="true" requiredMessage="Campo nome obrigatório"/>
                            <h:outputText value="Cpf "/>
                            <p:inputMask value="#{funcionarioHandler.funcionario.funCpf}" mask="999.999.999-99" required="true" requiredMessage="Campo cpf obrigatório"/>
                            <h:outputText value="Rg "/>
                            <p:inputMask value="#{funcionarioHandler.funcionario.funRg}" mask="99.999.999-9"  required="true" requiredMessage="Campo rg obrigatório"/>
                            <h:outputText value="Telefone "/>
                            <p:inputText value="#{funcionarioHandler.funcionario.funFone}" size="40" maxlength="45" required="true" requiredMessage="Campo fone obrigatório"/>
                            <h:outputText value="Bairro "/>
                            <p:inputText value="#{funcionarioHandler.funcionario.funBairro}" size="40" maxlength="45" required="true" requiredMessage="Campo bairro obrigatório"/> 
                            
                            <h:panelGrid columns="2">
                                <p:column>
                                    <h:outputText value="Estado"/>
                                    <h:selectOneMenu id="estado" value="#{funcionarioHandler.idEstado}" required="true" requiredMessage="Campo estado obrigatório." >
                                        <f:selectItem itemValue="" itemLabel="selecione o estado"/>
                                        <f:selectItems value="#{estadoHandler.listEstado()}" var="estado"
                                                       itemLabel="#{estado.estDescricao}" itemValue="#{estado.estCodigo}">
                                        </f:selectItems>
                                        <p:ajax update="cidades" 
                                                 listener="#{funcionarioHandler.popularCidades()}" />  
                                       
                                    </h:selectOneMenu>
                                </p:column>

                                <p:column>
                                    <p:commandButton action="#{funcionarioHandler.paginaEstado()}" onclick="CadastroEstado.xhtml" image="ui-icon-pencil" immediate="true" title="cadastrar estado"/>
                                </p:column>
                            </h:panelGrid>
                            
                            <h:panelGrid columns="2">
                                <p:column>
                                    <h:outputText value="Cidade"/>
                                    <h:selectOneMenu id="cidades" value="#{funcionarioHandler.idCidade}" required="true" requiredMessage="Campo cidade obrigatório." >
                                        <f:selectItem itemValue="" itemLabel="selecione a cidade"/>
                                        <f:selectItems value="#{funcionarioHandler.cidades}" var="cidade"
                                                       itemLabel="#{cidade.cidDescricao}" itemValue="#{cidade.cidCodigo}">
                                        </f:selectItems>
                                    </h:selectOneMenu>
                                </p:column>
                                <p:column>
                                    <p:commandButton action="#{funcionarioHandler.paginaCidade()}" onclick="CadastroCidade.xhtml" immediate="true" title="cadastrar cidade"  image="ui-icon-pencil"/>
                                </p:column>

                            </h:panelGrid>


                            <h:panelGrid columns="2">
                                <p:column>
                                    <h:outputText value="Cargo "/>
                                    <h:selectOneMenu id="cargo" value="#{funcionarioHandler.idCargo}" required="true" requiredMessage="Campo cargo obrigatório." >
                                        <f:selectItem itemValue="" itemLabel="selecione o cargo"/>
                                        <f:selectItems value="#{cargoHandler.listacargo()}" var="cargo"
                                                       itemLabel="#{cargo.carDescricao}" itemValue="#{cargo.carCodigo}">
                                        </f:selectItems>
                                    </h:selectOneMenu>
                                </p:column>
                                <p:column>
                                    <p:commandButton action="#{funcionarioHandler.paginaCargo()}" onclick="CadastroCargo.xhtml" image="ui-icon-pencil" immediate="true" title="cadastrar cargo"/>
                                </p:column>


                                <p:spacer width="0" height="20" />
                            </h:panelGrid>
                            <p:column>
                                <p:commandButton action="#{funcionarioHandler.salvar()}"  value="Salvar" update="avisos panelDados"  image="ui-icon ui-icon-disk"/>
                                <p:commandButton value="Pesquisar" image="ui-icon-search" action="#{funcionarioHandler.listafuncionario()}" update="formPesquisa" oncomplete="dlg2.show();"/>
                                <p:commandButton value="Cancelar" image="ui-icon-document" update="panelDados" oncomplete="cancelar.show();"/> 
                            </p:column>
                        </h:panelGrid>
                    </p:panel>
                    <p:spacer width="0" height="20" />
                </h:form>

                <p:dialog id="dialogfuncionario" header="Pesquisar Funcionario" hideEffect="drop" height="400" width="1200"  widgetVar="dlg2">  
                    <h:form id="formPesquisa">
                        <p:dataTable id="tabelafuncionario" var="c" value="#{funcionarioHandler.listafuncionario()}" 
                                     emptyMessage="Nenhum registro encontrado." rows="8" 
                                     paginator="true" selectionMode="single">

                            <p:column headerText="Código" style="text-align: center">
                                <h:outputText value="#{c.funCodigo}" />
                            </p:column>
                            <p:column filterBy="#{c.funNome}" headerText="Pesquisa por Nome">  
                                <h:outputText value="#{c.funNome}" />  
                            </p:column>

                            <p:column headerText="Cargo" style="text-align: center">
                                <h:outputText value="#{c.funCargo}" />
                            </p:column>                            

                            <p:column headerText="Cpf" style="text-align: center">
                                <h:outputText value="#{c.funCpf}" />
                            </p:column>

                            <p:column headerText="Rg" style="text-align: center">
                                <h:outputText value="#{c.funRg}" />
                            </p:column>

                            <p:column headerText="Telefone" style="text-align: center">
                                <h:outputText value="#{c.funFone}" />
                            </p:column>

                            <p:column headerText="Bairro" style="text-align: center">
                                <h:outputText value="#{c.funBairro}" />
                            </p:column>

                            <p:column headerText="Cidade" style="text-align: center">
                                <h:outputText value="#{c.funCidade}" />
                            </p:column>

                            <p:column headerText="Estado" style="text-align: center">
                                <h:outputText value="#{c.funEstado}" />
                            </p:column>

                            <p:column style="text-align: center">
                                <p:commandButton actionListener="#{funcionarioHandler.parametroRemover}" image="ui-icon-trash"
                                                 update="avisos" title="excluir registro" oncomplete="confirmacao.show()" immediate="true">  
                                    <f:param id="idParaRemover" value="#{c}"/>
                                </p:commandButton> 
                                <p:commandButton actionListener="#{funcionarioHandler.alterar(c)}" onclick="CadastroFuncionario.xhtml"
                                                 image="ui-icon-wrench" title="alterar registro" immediate="true">
                                </p:commandButton>
                            </p:column>  
                        </p:dataTable>
                    </h:form>
                </p:dialog>
                <p:confirmDialog message="Deseja realmente excluir registro?" hideEffect="explode" 
                                 header="Excluir" severity="alert" widgetVar="confirmacao" modal="true">
                    <h:form>
                        <p:commandButton value="Sim" oncomplete="confirmacao.hide();" 
                                         ajax="false" action="#{funcionarioHandler.remover()}" immediate="true"/>
                        <p:commandButton value="Não" onclick="confirmacao.hide()" type="button" immediate="true"/>
                    </h:form>
                </p:confirmDialog>
                <p:confirmDialog  message="Deseja Cancelar?" hideEffect="drop" modal="true" 
                                  header="Cancelar funcionário" severity="info" widgetVar="cancelar">
                    <h:form>
                        <p:commandButton action="#{funcionarioHandler.cancelar()}" onclick="cancelar.hide()" value="Sim" update="formEditar:panelDados"/>
                        <p:commandButton value="Não" onclick="cancelar.hide()"  type="button"/>

                    </h:form>

                </p:confirmDialog>

            </h:body>
        </ui:define>
    </ui:composition>
</html>
